import scipy
import numpy as np
import pandas as pd
from scipy import stats
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.metrics.pairwise import euclidean_distances


#属性traffic和price:
df_traffic = pd.read_csv("D:\数据挖掘\数据预处理-两次实验\数据预处理-实验1\house_train.csv", usecols=['traffic'])  #返回一个DataFrame的对象，这个是pandas的一个数据结构
df_price = pd.read_csv("D:\数据挖掘\数据预处理-两次实验\数据预处理-实验1\house_train.csv", usecols=['price'])
print("针对属性traffic和price:\n")
#Pearson相关性
df_traffic1=np.array(df_traffic).ravel()   #.flatten()  .reshape(1, -1) .ravel() 转为一位数组
df_price1=np.array(df_price)
Pearsonr=scipy.stats.pearsonr(df_traffic1,df_price1)
print("Pearson相关性为:\n",Pearsonr[0])  #返回的数组有三个参数

#欧几里得距离
df_traffic2=np.array(df_traffic).reshape(1, -1)
df_price2=np.array(df_price).reshape(1, -1)
Euclidean=euclidean_distances(df_traffic2,df_price2)
print("欧几里得距离为:\n",Euclidean[0])

#余弦相似度
df_traffic3=np.array(df_traffic).reshape(1, -1)
df_price3=np.array(df_price).reshape(1, -1)
Cosine =cosine_similarity(df_traffic3,df_price3)
print("余弦相似度为:\n",Cosine[0])


#price进行缩放:
print("price进行缩放:\n")
#Pearson相关性
df_traffic1=np.array(df_traffic).ravel()   #.flatten()  .reshape(1, -1) .ravel() 转为一位数组
df_price1=np.array(df_price)*2   #放缩
Pearsonr=scipy.stats.pearsonr(df_traffic1,df_price1)
print("Pearson相关性为:\n",Pearsonr[0])  #返回的数组有三个参数

#欧几里得距离
df_traffic2=np.array(df_traffic).reshape(1, -1)
df_price2=np.array(df_price).reshape(1, -1)*2 #放缩
Euclidean=euclidean_distances(df_traffic2,df_price2)
print("欧几里得距离为:\n",Euclidean[0])

#余弦相似度
df_traffic3=np.array(df_traffic).reshape(1, -1)
df_price3=np.array(df_price).reshape(1, -1)*2 #放缩
Cosine =cosine_similarity(df_traffic3,df_price3)
print("余弦相似度为:\n",Cosine[0])


#price进行平移:
print("price进行平移:\n")
#Pearson相关性
df_traffic1=np.array(df_traffic).ravel()   #.flatten()  .reshape(1, -1) .ravel() 转为一位数组
df_price1=np.array(df_price)+5   #平移
Pearsonr=scipy.stats.pearsonr(df_traffic1,df_price1)
print("Pearson相关性为:\n",Pearsonr[0])  #返回的数组有三个参数

#欧几里得距离
df_traffic2=np.array(df_traffic).reshape(1, -1)
df_price2=np.array(df_price).reshape(1, -1)+5 #平移
Euclidean=euclidean_distances(df_traffic2,df_price2)
print("欧几里得距离为:\n",Euclidean[0])

#余弦相似度
df_traffic3=np.array(df_traffic).reshape(1, -1)
df_price3=np.array(df_price).reshape(1, -1)+5 #平移
Cosine =cosine_similarity(df_traffic3,df_price3)
print("余弦相似度为:\n",Cosine[0])